<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />

<meta name="viewport" content="width=device-width, initial-scale=1" />



<title>TADBD</title>



<style type="text/css">code{white-space: pre;}</style>
<style type="text/css" data-origin="pandoc">
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
a.sourceLine { text-indent: -1em; padding-left: 1em; }
}
pre.numberSource a.sourceLine
  { position: relative; left: -4em; }
pre.numberSource a.sourceLine::before
  { content: attr(title);
    position: relative; left: -1em; text-align: right; vertical-align: baseline;
    border: none; pointer-events: all; display: inline-block;
    -webkit-touch-callout: none; -webkit-user-select: none;
    -khtml-user-select: none; -moz-user-select: none;
    -ms-user-select: none; user-select: none;
    padding: 0 4px; width: 4em;
    color: #aaaaaa;
  }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
div.sourceCode
  {  }
@media screen {
a.sourceLine::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */

</style>
<script>
// apply pandoc div.sourceCode style to pre.sourceCode instead
(function() {
  var sheets = document.styleSheets;
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
    try { var rules = sheets[i].cssRules; } catch (e) { continue; }
    for (var j = 0; j < rules.length; j++) {
      var rule = rules[j];
      // check if there is a div.sourceCode rule
      if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue;
      var style = rule.style.cssText;
      // check if color or background-color is set
      if (rule.style.color === '' && rule.style.backgroundColor === '') continue;
      // replace div.sourceCode by a pre.sourceCode rule
      sheets[i].deleteRule(j);
      sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
    }
  }
})();
</script>

<style type="text/css">
  p.abstract{
    text-align: center;
    font-weight: bold;
  }
  div.abstract{
    margin: auto;
    width: 90%;
  }
</style>


<style type="text/css">body {
background-color: #fff;
margin: 1em auto;
max-width: 700px;
overflow: visible;
padding-left: 2em;
padding-right: 2em;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.35;
}
#TOC {
clear: both;
margin: 0 0 10px 10px;
padding: 4px;
width: 400px;
border: 1px solid #CCCCCC;
border-radius: 5px;
background-color: #f6f6f6;
font-size: 13px;
line-height: 1.3;
}
#TOC .toctitle {
font-weight: bold;
font-size: 15px;
margin-left: 5px;
}
#TOC ul {
padding-left: 40px;
margin-left: -1.5em;
margin-top: 5px;
margin-bottom: 5px;
}
#TOC ul ul {
margin-left: -2em;
}
#TOC li {
line-height: 16px;
}
table {
margin: 1em auto;
border-width: 1px;
border-color: #DDDDDD;
border-style: outset;
border-collapse: collapse;
}
table th {
border-width: 2px;
padding: 5px;
border-style: inset;
}
table td {
border-width: 1px;
border-style: inset;
line-height: 18px;
padding: 5px 5px;
}
table, table th, table td {
border-left-style: none;
border-right-style: none;
}
table thead, table tr.even {
background-color: #f7f7f7;
}
p {
margin: 0.5em 0;
}
blockquote {
background-color: #f6f6f6;
padding: 0.25em 0.75em;
}
hr {
border-style: solid;
border: none;
border-top: 1px solid #777;
margin: 28px 0;
}
dl {
margin-left: 0;
}
dl dd {
margin-bottom: 13px;
margin-left: 13px;
}
dl dt {
font-weight: bold;
}
ul {
margin-top: 0;
}
ul li {
list-style: circle outside;
}
ul ul {
margin-bottom: 0;
}
pre, code {
background-color: #f7f7f7;
border-radius: 3px;
color: #333;
white-space: pre-wrap; 
}
pre {
border-radius: 3px;
margin: 5px 0px 10px 0px;
padding: 10px;
}
pre:not([class]) {
background-color: #f7f7f7;
}
code {
font-family: Consolas, Monaco, 'Courier New', monospace;
font-size: 85%;
}
p > code, li > code {
padding: 2px 0px;
}
div.figure {
text-align: center;
}
img {
background-color: #FFFFFF;
padding: 2px;
border: 1px solid #DDDDDD;
border-radius: 3px;
border: 1px solid #CCCCCC;
margin: 0 5px;
}
h1 {
margin-top: 0;
font-size: 35px;
line-height: 40px;
}
h2 {
border-bottom: 4px solid #f7f7f7;
padding-top: 10px;
padding-bottom: 2px;
font-size: 145%;
}
h3 {
border-bottom: 2px solid #f7f7f7;
padding-top: 10px;
font-size: 120%;
}
h4 {
border-bottom: 1px solid #f7f7f7;
margin-left: 8px;
font-size: 105%;
}
h5, h6 {
border-bottom: 1px solid #ccc;
font-size: 105%;
}
a {
color: #0033dd;
text-decoration: none;
}
a:hover {
color: #6666ff; }
a:visited {
color: #800080; }
a:visited:hover {
color: #BB00BB; }
a[href^="http:"] {
text-decoration: underline; }
a[href^="https:"] {
text-decoration: underline; }

code > span.kw { color: #555; font-weight: bold; } 
code > span.dt { color: #902000; } 
code > span.dv { color: #40a070; } 
code > span.bn { color: #d14; } 
code > span.fl { color: #d14; } 
code > span.ch { color: #d14; } 
code > span.st { color: #d14; } 
code > span.co { color: #888888; font-style: italic; } 
code > span.ot { color: #007020; } 
code > span.al { color: #ff0000; font-weight: bold; } 
code > span.fu { color: #900; font-weight: bold; } 
code > span.er { color: #a61717; background-color: #e3d2d2; } 
</style>




</head>

<body>




<h1 class="title toc-ignore">TADBD</h1>
<h4 class="date">二月 14, 2020</h4>
<div class="abstract">
<p class="abstract">Abstract</p>
<p>TADBD, a sensitive and fast computational method for detection of TAD boundaries on Hi-C contact matrix. Topological Associated Domain (TAD) is a self-interacting genomic block. The detection of TAD boundaries on Hi-C contact matrix is one of the most important issues in the analysis of 3D genome architecture at TAD level. Here, we present TADBD, a sensitive and fast computational method for detection of TAD boundaries on Hi-C contact matrix. It implements a Haar-based algorithm considering Haar diagonal template, the acceleration via a compact integrogram, multi-scale aggregation at template size, and statistical filtering. Compared with the other six popular methods based on simulated and experimental Hi-C data, TADBD is competitive in terms of accuracy, speed and robustness. In addition, a new R package TADBD is freely given out online.</p>
</div>



<div id="introduction" class="section level1">
<h1>Introduction</h1>
<p><code>TADBD</code> is a fast and sensitive tool for detection of TAD boundaries on Hi-C contact matrix. A Haar-based algorithm is proposed to detect TAD boundaries on Hi-C contact matrix. In view of the geometry of TAD, a diagonal template is chosen to extract Haar feature of each point on the diagonal of contact matrix, by considering multi-scale aggregation at template size. Then the peaks on the average Haar feature value curve are located, and statistical filtering is performed to determine those significant ones as the final TAD boundaries. Furthermore, the feature extraction procedure is accelerated with the help of a compact integrogram.</p>
<p>The package contains three functions, <code>DataLoad()</code> , <code>TADBD()</code> and <code>Output()</code> with the function of loading data, detecting TAD boundaries and outputing the result. The input contact matrix can be dense or sparse, that is to say, the resulting files or memory objects of multiple contact matrix preparation tools and most Hi-C normalization approaches are acceptable. As output, the final detected TAD boundaries can be given in an optional form between text and graphics.</p>
</div>
<div id="getting-started" class="section level1">
<h1>Getting Started</h1>
<div id="installation" class="section level2">
<h2>Installation</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb1-1" title="1"><span class="co"># if (!requireNamespace(&quot;BiocManager&quot;, quietly=TRUE))</span></a>
<a class="sourceLine" id="cb1-2" title="2"><span class="co">#     install.packages(&quot;BiocManager&quot;)</span></a>
<a class="sourceLine" id="cb1-3" title="3"><span class="co"># BiocManager::install(&quot;TADBD&quot;)</span></a>
<a class="sourceLine" id="cb1-4" title="4"><span class="co">#devtools::install_github(&quot;bioinfo-lab/TADBD&quot;)</span></a>
<a class="sourceLine" id="cb1-5" title="5"><span class="co">#library(TADBD)</span></a></code></pre></div>
</div>
<div id="input-data" class="section level2">
<h2>Input data</h2>
<div id="working-with-a-hi-c-matrix-file" class="section level3">
<h3>working with a Hi-C matrix file</h3>
<p>The input contact matrix can be dense or sparse. #### sparse format Below is an example of loading data when ‘hicmat’ is in sparse format</p>
<div id="dense-format" class="section level4">
<h4>dense format</h4>
<p>Below is an example of loading data when ‘hicmat’ is in dense format</p>
</div>
</div>
</div>
<div id="running-tadbd" class="section level2">
<h2>Running TADBD</h2>
<p>Once matrices that the function <code>LoadData()</code> outputs are in an acceptable format, <code>TADBD()</code> can be run with only one parameter. Below we show how to run the algorithm, and <code>TADBD()</code> outputs the the bin number of TAD boundaries on the contact matrix</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb2-1" title="1"><span class="kw">rm</span>(<span class="dt">list=</span><span class="kw">ls</span>())</a>
<a class="sourceLine" id="cb2-2" title="2"><span class="kw">library</span>(TADBD)</a>
<a class="sourceLine" id="cb2-3" title="3"><span class="co">#specify the species, resolution, and chromosome</span></a>
<a class="sourceLine" id="cb2-4" title="4">species &lt;-<span class="st"> &quot;hg19&quot;</span></a>
<a class="sourceLine" id="cb2-5" title="5">chr &lt;-<span class="st"> &quot;chr18&quot;</span></a>
<a class="sourceLine" id="cb2-6" title="6">resolution &lt;-<span class="st"> </span><span class="dv">50000</span></a>
<a class="sourceLine" id="cb2-7" title="7"><span class="kw">options</span>(<span class="dt">scipen =</span> <span class="dv">999</span>)</a>
<a class="sourceLine" id="cb2-8" title="8"><span class="kw">data</span>(hicdata)</a>
<a class="sourceLine" id="cb2-9" title="9"><span class="co">#Transfer the input format into an acceptable format</span></a>
<a class="sourceLine" id="cb2-10" title="10">hicmat &lt;-<span class="st"> </span><span class="kw">DataLoad</span>(hicdata, <span class="dt">bsparse =</span> F, species, chr, resolution)</a>
<a class="sourceLine" id="cb2-11" title="11"><span class="co">#Output the bin number of TAD boundaries on the contact matrix </span></a>
<a class="sourceLine" id="cb2-12" title="12">df_result &lt;-<span class="st"> </span><span class="kw">TADBD</span>(hicmat)</a></code></pre></div>
</div>
<div id="detecting-tad-boundaries" class="section level2">
<h2>Detecting TAD boundaries</h2>
<p>Our method is specifically designed to detect TAD boundaries. The function <code>output()</code> takes the bin number of the detected TAD boundaries as input, and outputs the TAD boundaries in an optional form between text file and graphical heatmap. Below is an example of running the function <code>output()</code>. ### Output a text file</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb3-1" title="1"><span class="kw">rm</span>(<span class="dt">list=</span><span class="kw">ls</span>())</a>
<a class="sourceLine" id="cb3-2" title="2"><span class="kw">library</span>(TADBD)</a>
<a class="sourceLine" id="cb3-3" title="3">species &lt;-<span class="st"> &quot;hg19&quot;</span></a>
<a class="sourceLine" id="cb3-4" title="4">chr &lt;-<span class="st"> &quot;chr18&quot;</span></a>
<a class="sourceLine" id="cb3-5" title="5">resolution &lt;-<span class="st"> </span><span class="dv">50000</span></a>
<a class="sourceLine" id="cb3-6" title="6"><span class="kw">options</span>(<span class="dt">scipen =</span> <span class="dv">999</span>)</a>
<a class="sourceLine" id="cb3-7" title="7"><span class="kw">data</span>(hicdata)</a>
<a class="sourceLine" id="cb3-8" title="8">hicmat &lt;-<span class="st"> </span><span class="kw">DataLoad</span>(hicdata, <span class="dt">bsparse =</span> F, species, chr, resolution)</a>
<a class="sourceLine" id="cb3-9" title="9">df_result &lt;-<span class="st"> </span><span class="kw">TADBD</span>(hicmat)</a>
<a class="sourceLine" id="cb3-10" title="10"><span class="co">#Output coordinates of TAD boundary </span></a>
<a class="sourceLine" id="cb3-11" title="11"><span class="kw">Output</span>(df_result, species, chr, resolution, <span class="dt">outxtfile=</span><span class="st">&quot;./result&quot;</span>)</a></code></pre></div>
<div id="output-a-heatmap" class="section level3">
<h3>Output a heatmap</h3>
<div class="sourceCode" id="cb4"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb4-1" title="1"><span class="kw">rm</span>(<span class="dt">list=</span><span class="kw">ls</span>())</a>
<a class="sourceLine" id="cb4-2" title="2"><span class="kw">library</span>(TADBD)</a>
<a class="sourceLine" id="cb4-3" title="3">species &lt;-<span class="st"> &quot;hg19&quot;</span></a>
<a class="sourceLine" id="cb4-4" title="4">chr &lt;-<span class="st"> &quot;chr18&quot;</span></a>
<a class="sourceLine" id="cb4-5" title="5">resolution &lt;-<span class="st"> </span><span class="dv">50000</span></a>
<a class="sourceLine" id="cb4-6" title="6"><span class="kw">options</span>(<span class="dt">scipen =</span> <span class="dv">999</span>)</a>
<a class="sourceLine" id="cb4-7" title="7"><span class="kw">data</span>(hicdata)</a>
<a class="sourceLine" id="cb4-8" title="8">hicmat &lt;-<span class="st"> </span><span class="kw">DataLoad</span>(hicdata, <span class="dt">bsparse =</span> F, species, chr, resolution)</a>
<a class="sourceLine" id="cb4-9" title="9">df_result &lt;-<span class="st"> </span><span class="kw">TADBD</span>(hicmat)</a>
<a class="sourceLine" id="cb4-10" title="10"><span class="co">#Output heatmap and TAD boundary tracks</span></a>
<a class="sourceLine" id="cb4-11" title="11"><span class="kw">Output</span>(df_result, species, chr, resolution, <span class="dt">outxtfile=</span><span class="st">&quot;./result&quot;</span>, <span class="dt">bheatmap =</span> T, <span class="dt">heatmapfile=</span><span class="st">&quot;./heatmap&quot;</span>, hicmat)</a></code></pre></div>
<pre><code>## png 
##   2</code></pre>
</div>
</div>
</div>
<div id="reference" class="section level1">
<h1>Reference</h1>
</div>
<div id="sessioninfo" class="section level1">
<h1>SessionInfo</h1>
<p>sessionInfo（）</p>
</div>



<!-- code folding -->


<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
  (function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
    document.getElementsByTagName("head")[0].appendChild(script);
  })();
</script>

</body>
</html>
